package cc1_XML_read;

import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class LeeRemitoCliente {
	static final String ARCHIVO = "RemitoCliente.xml";
	
	static void leerElementoRemitoCliente(){
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder;
		Document doc;
		try {
			builder = factory.newDocumentBuilder();
			doc = builder.parse(ARCHIVO);
			
			XMLRemitoCliente remito = new XMLRemitoCliente();
			
			Element rootRemito = doc.getDocumentElement();
			String numero= rootRemito.getAttribute("numero");
			remito.setNumero(Integer.parseInt(numero));
			
			String fecha= rootRemito.getElementsByTagName("Emision").item(0).getTextContent();
			remito.setFecha(fecha);
						
			NodeList nodos= rootRemito.getElementsByTagName("Cliente");
			Element nodoProveedor = (Element)nodos.item(0);
			String cuil= nodoProveedor.getElementsByTagName("Cuil").item(0).getTextContent();
			remito.setCuilCliente(cuil);
			
			String razon= nodoProveedor.getElementsByTagName("RazonSocial").item(0).getTextContent();
			remito.setRazonSocial(razon);
			
			//Referencia
			nodos= rootRemito.getElementsByTagName("Referencia");
			Element nodoReferencia= (Element) nodos.item(0);
					
			//OrdenesCompra
			NodeList nodosOrdenes= nodoReferencia.getElementsByTagName("OrdenPedido");
			
			for(int i=0; i<nodosOrdenes.getLength(); i++){//por cada OC
				
				Element nodoOP = (Element)nodosOrdenes.item(i);
				int numeroOP= Integer.parseInt(nodoOP.getElementsByTagName("Numero").item(0).getTextContent());
				remito.setNumeroOP(numeroOP);
				
				//Rodamientos
				List itemRemito = new ArrayList();
				Element nodoRodamientos= (Element) nodoOP.getElementsByTagName("Rodamientos").item(0);
				NodeList nodosItems= nodoRodamientos.getElementsByTagName("Item");
				for(int j=0; j<nodosItems.getLength(); j++){//por cada Item del Remito
					Element prmItem = (Element)nodosItems.item(j);
					String serie= prmItem.getAttribute("serie");
					itemRemito.add(serie);
										
					String sufijo= prmItem.getAttribute("sufijo");
					itemRemito.add(sufijo);
										
					String marca= prmItem.getElementsByTagName("Marca").item(0).getTextContent();
					itemRemito.add(marca);
					
					String origen= prmItem.getElementsByTagName("Origen").item(0).getTextContent();
					itemRemito.add(origen);
										
					int cantidad= (Integer.parseInt(prmItem.getElementsByTagName("Cantidad").item(0).getTextContent()));
					itemRemito.add(cantidad);
					remito.setItemRemito(itemRemito);
				}
			}			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}
